Avoid a segfault when menus are re-shown under Wayland
authorMatthias Clasen <mclasen@redhat.com>
Mon, 16 Sep 2013 23:01:48 +0000 (19:01 -0400)
committerMatthias Clasen <mclasen@redhat.com>
Mon, 16 Sep 2013 23:01:48 +0000 (19:01 -0400)
The surface is destroyed when we hide a window, but
gdk_window_set_opaque_region can be called before the window is
shown again, so we need to ensure the surface exits.

https://bugzilla.gnome.org/show_bug.cgi?id=707328

gdk/wayland/gdkwindow-wayland.c

index 937a8e8ffb4979127bd6e3a6c3b8ea929288eac9..5e001f137f542b346716e9fc9b0a3c5dd049e705 100644 (file)
@@ -2081,6 +2081,9 @@ gdk_wayland_window_set_opaque_region (GdkWindow      *window,
   if (GDK_WINDOW_DESTROYED (window))
     return;
 
+  if (!impl->surface)
+    gdk_wayland_window_create_surface (window);
+
   wl_region = wl_region_from_cairo_region (GDK_WAYLAND_DISPLAY (gdk_window_get_display (window)), region);
   if (wl_region == NULL)
     return;